import axios, { AxiosResponse } from 'axios'
import { ElMessage } from 'element-plus'

// 创建 axios 实例
const service = axios.create({
	baseURL: import.meta.env.VITE_API_BASE_URL, // API 基础路径
	timeout: 10000, // 请求超时时间
	headers: {
		'Content-Type': 'application/json;charset=utf-8',
		/*'authorization': 'token',*/
		'entrance':'background'
	},
})

// 请求拦截器
service.interceptors.request.use(
	(config: any) => {
		// 在发送请求之前做些什么
		// 例如：添加token
		const token = localStorage.getItem('token')

		if (token) {
			config.headers = {
				...config.headers,
				authorization: JSON.parse(token)
				/*Authorization: `Bearer ${token}`*/
			}
		}
		return config
	},
	(error: any) => {
		// 处理请求错误
		console.log(error) // 用于调试
		return Promise.reject(error)
	}
)

// 响应拦截器
service.interceptors.response.use(
	(response: AxiosResponse) => {
		const res = response.data
		// 如果状态码不是200，判定为一个错误
		if (res.code !== 200) {
			ElMessage({
				message: res.message || 'Error',
				type: 'error',
				duration: 3 * 1000
			})
			//return Promise.reject(new Error(res.message || 'Error'))
		}

		return res
	},
	(error: any) => {
		// 处理响应错误
		console.log('err' + error) // 用于调试
		ElMessage({
			message: error.message,
			type: 'error',
			duration: 3 * 1000
		})
		return Promise.reject(error)
	}
)

export default service

